'''
对于字赠的内容进行AI的优化，优化的内容有以下几个方面
1、单句字幕长度处理：对于超长的字幕进行分切，对于短的字幕内容进行合理的合并；
2、错别字进行处理： ASR中有一些的字幕处理出现错误，尝试通过AI进行处理
3、对于无用的内容进行删除：一些无含义的语句，进行去除
4、对于精彩的内容进行提取：对于一些重要信息的片段进行提取；（核心的主题思想)
'''
from pathlib import Path
from openai import OpenAI
import json
 
client = OpenAI(
    api_key="sk-CwhcRSwMALExKTPwtKvsROiaHfmGh8jIQLeqYITzdweszJqB",
    base_url = "https://api.moonshot.cn/v1",
    # api_key= "sk-8c2efa282764429096ad74da241211a8",
    # base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
subfile = "/root/cstd-sub/subtitle.json" 

# file_object = client.files.create(file=Path(subfile), purpose="file-extract")
# file_content = client.files.content(file_id=file_object.id).text

with open(subfile, "r", encoding='utf-8') as f:
    data = json.load(f)

jarray = []

chunk_size = 20
for i in range(0, len(data), chunk_size):
    chunk = data[i:i+chunk_size]
    jarray.append(chunk)
    print(chunk)

    completion = client.chat.completions.create(
        model="moonshot-v1-128k",
        max_tokens=10240,
        # model="qwen-plus",
        messages=[
            {"role": "system",
            "content": "你是一个Assistant, 需要处理json的字幕中text的长度大于30的内容，需要进行如下的处理: \
                1、识别并理解原句的主要信息和意图。\
                2、根据语义和逻辑，在原句的适当位置进行分割。\
                3、确保分割后的每个句子都符合语法规则，且没有遗漏或添加任何信息。\
                请严格按以上内容进行处理,要返回json格式的完整结果,不要附带其它内容"
            },
            {
                "role": "user",
                "content": json.dumps(chunk, indent=4),
            },
            # {"role": "user", "content": "请处理subtitle.srt的内容，并返回结果."}
        ],
        temperature=0,
    )
    data1 =completion.choices[0].message.content
    #json_str = json.dumps(data1, ensure_ascii=False)
    # json_str = json.dumps(data1, ensure_ascii=True)
    print(data1)
 
# completion = client.chat.completions.create(
#     model="moonshot-v1-8k",
#     messages=[
#         {"role": "system",
#          "content": "你是 Kimi，由 Moonshot AI 提供的人工智能助手，你更擅长中文和英文的对话。你会为用户提供安全，有帮助，准确的回答。同时，你会拒绝一切涉及恐怖主义，种族歧视，黄色暴力等问题的回答。Moonshot AI 为专有名词，不可翻译成其他语言。"},
#         {"role": "user", "content": "你好，请给出python库lxml的介绍以及详细用法"}
#     ],
#     temperature=0.3,
# )

# print(completion.choices[0].message)
